package com.xbongbong.pro.statistic.result.pojo.vo;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xbongbong.paas.toolbox.helper.PageHelper;
import com.xbongbong.pro.statistic.ChartDrillItemPojo;
import com.xbongbong.pro.statistic.result.pojo.TitleRightPojo;
import com.xbongbong.pro.statistic.through.pojo.TableDataInfoNewPojo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.util.List;

/**
 * 获取SAAS图表关联的表（图下面的表---如客户总数下面的表格）的结果
 * @author zcp
 * @version v1.0
 * @date 2019/2/18 19:29
 * @since v1.0
 */
@Getter
@Setter
@ToString
public class ResultTableVO implements Serializable {
    private static final long serialVersionUID = -8013320135928159798L;

    /**
     * 表格上面描述
     */
    private String headMemo;
    /**
     * 表格标题
     */
    private List<TitleRightPojo> title;

    /**
     * 表渲染需要的值，[[{"value":"客户总数","through":[]},{"value":"10","through":[]}], [{"value":"有效客户","through":[]}]]
     * 双层数组，数组内部套有legend大小的数组个数
     */
    private List<List<ResultDataTableVO>> data;

    /**
     * 市场活动专用的,骚逻辑
     * * 表渲染需要的值，[[{"value":"客户总数","through":[]},{"value":"10","through":[]}], [{"value":"有效客户","through":[]}]]
     *      * 双层数组，数组内部套有legend大小的数组个数
     */
    private List<List<ResultDataTableVO>> marketData;

    /**
     * 某些图表的列表页需要穿透显示表单信息
     */
    private List<List<TableDataInfoNewPojo>> businessData;

    /**
     * 分页对象
     */
    private PageHelper pageHelper;

    //===========以下是自定义相关===============

    /**
     *自定义表格标题，k
     */
    private List<JSONObject> customTitle;

    /**
     * 表渲染需要的值，[{key:value},{key,value}]
     */
    private List<JSONObject> customData;
    /**
     * 自定义图表的汇总
     */
    private JSONArray customTotal;

    /**
     *指标图预警数据
     */
    private JSONArray warningValues;

    /**
     * 图表类型
     * @see com.xbongbong.pro.statistic.enums.ChartTypeEnum
     */
    private Integer chartType;

    /**
     * 表名称
     */
    private String tableName;

    /**
     * 超过10000条真实的条数
     */
    private Integer realRowsCount;

    /**
     * 图表（唯一确定图表的值）
     */
    private String systemCode;

    /**
     * 统计图表
     */
    private JSONArray body;

    /**
     * 统计图表
     */
    private JSONObject head;

    /**
     * 汇总的总计结果集
     */
    private List<String> summary;

    /**
     * 列数据总条数
     */
    private int colTotal;

    /**
     * 指标值的总和（指标图）
     */
    private String totalSum;

    /**
     *  用于前端显示预警按钮
     */
    private Boolean warningFlag;

    /**
     * 副指标指标图
     */
    private List<JSONObject> secondCustomTitle;

    /**
     * 副指标指标图图表的汇总
     */
    private JSONArray secondCustomTotal;

    /**
     * 指标图(不变，增长，减少)类型
     */
    private Integer rateType;

    /**
     * 副指标指标图(不变，增长，减少)值
     */
    private String rate;

    /**
     * 副指标指标图(不变，增长，减少)
     */
    private String rateTitle;

    /**
     * 指标值的总和（副指标指标图）
     */
    private String secondTotalSum;

    /**
     * 钻取的层级信息
     */
    private List<ChartDrillItemPojo> drill;

}
